// Decompiled by Jad v1.5.8e. Copyright 2001 Pavel Kouznetsov.
// Jad home page: http://www.geocities.com/kpdus/jad.html
// Decompiler options: braces fieldsfirst space lnc
package com.google.zxing.multi.qrcode;
import com.google.zxing.BarcodeFormat;
import com.google.zxing.BinaryBitmap;
import com.google.zxing.ReaderException;
import com.google.zxing.Result;
import com.google.zxing.ResultMetadataType;
import com.google.zxing.common.DecoderResult;
import com.google.zxing.common.DetectorResult;
import com.google.zxing.multi.MultipleBarcodeReader;
import com.google.zxing.multi.qrcode.detector.MultiDetector;
import com.google.zxing.qrcode.QRCodeReader;
import com.google.zxing.qrcode.decoder.Decoder;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
public final class QRCodeMultiReader extends QRCodeReader
implements MultipleBarcodeReader
{
private static final Result a[] = new Result[0];
public QRCodeMultiReader()
{
}
public Result[] decodeMultiple(BinaryBitmap binarybitmap)
{
return decodeMultiple(binarybitmap, null);
}
public Result[] decodeMultiple(BinaryBitmap binarybitmap, Map map)
{
ArrayList arraylist;
DetectorResult adetectorresult[];
int i;
int j;
arraylist = new ArrayList();
adetectorresult = (new MultiDetector(binarybitmap.getBlackMatrix())).detectMulti(map);
i = adetectorresult.length;
j = 0;
_L2:
DetectorResult detectorresult;
if (j >= i)
{
break; /* Loop/switch isn't completed */
}
detectorresult = adetectorresult[j];
DecoderResult decoderresult;
Result result;
List list;
decoderresult = getDecoder().decode(detectorresult.getBits());
com.google.zxing.ResultPoint aresultpoint[] = detectorresult.getPoints();
result = new Result(decoderresult.getText(), decoderresult.getRawBytes(), aresultpoint, BarcodeFormat.QR_CODE);
list = decoderresult.getByteSegments();
if (list == null)
{
break MISSING_BLOCK_LABEL_114;
}
result.putMetadata(ResultMetadataType.BYTE_SEGMENTS, list);
String s = decoderresult.getECLevel();
if (s == null)
{
break MISSING_BLOCK_LABEL_136;
}
result.putMetadata(ResultMetadataType.ERROR_CORRECTION_LEVEL, s);
arraylist.add(result);
_L3:
j++;
if (true) goto _L2; else goto _L1
_L1:
if (arraylist.isEmpty())
{
return a;
} else
{
return (Result[])arraylist.toArray(new Result[arraylist.size()]);
}
ReaderException readerexception;
readerexception;
goto _L3
}
}